I ve just bought a Packard Bell OneTwo (M3700), a 600 Euros all-in-one computer with a 20 multipoint touch screen (there are bigger models with 23 touch screen, wifi and some other options). This machine will be used to run OpenBravoPOS, a free (libre) point of sale software. So far, I think this machine is just perfect for the job.
Getting it to run smoothly under Linux is not a walk in the park, however. There are some quirks and some assembly is required, but once you re done (that takes a couple of hours at most once you ve got all the info, which you have if you re reading this) this machine is just great.
It s fast, with a 2.1 GHz Pentium Dual-Core (T4300) CPU, 4 GB of RAM, an Intel GM45 GPU with up to 256 MB of shared RAM, gigabit networking, a fast 320 GB SATA disk and a combo DVD-drive (not a slot-in, too bad). The screen is nice, and the touchscreen is incredibly smooth, precise and sensitive. The sound is good, the webcam is great and it works out of the box, too!
Update: added a note about the card reader.
Before you go
Enter the BIOS and bump the amount of memory allocated to the GPU to 256 MB. By default, the machine ships with only 64 MB allocated to the GPU, which is low and ridiculous considering it is equipped with 4 GB
Installing Debian
Forget about installing Lenny with debian-installer on this machine. The standard installer with its 2.6.26 kernel doesn t support the network interface properly. Upgraded installer images with 2.6.28 or 2.6.30 kernels end up locking the machine solid before the first installer screen.
Your best friend: System Rescue CD. Your other best friend: debootstrap.
Before rebooting, install the 2.6.30 kernel from backports.org. It works like a charm, even if the 2.6.30 on the upgraded installer locked up solid. Go figure :) While you re at it, install X from Testing. You need a recent enough version of the intel driver that will support the GM45 chip.
Configuring X
This is the first and the biggest quirk on this machine. The LCD is actually wired up to both the VGA and the LVDS outputs on the graphic card, and advertises different resolutions on both. The native resolution (1600 900 on this model) is only advertised on the LVDS output.
While fiddling with X, it becomes obvious that the VGA output is used as the boot video device. If you disable the output in X with xrandr, you loose the text consoles. My un(?)educated guess is that this setup allowed them to use a standard desktop PC BIOS instead of using a more expensive laptop BIOS. I may be wrong, but that s pretty much the only thing that makes sense to me.
Anyway. If you want X to work properly, you ll have to tell it to ignore the VGA output entirely.
Section "Device"
Identifier "Intel X4500"
Option "Monitor-LVDS" "Panel on LVDS"
Option "Monitor-VGA" "Panel on VGA"
EndSection
Section "Monitor"
Identifier "Panel on LVDS"
EndSection
Section "Monitor"
Identifier "Panel on VGA"
# The LCD panel is wired up on both VGA and LVDS
# Ignore the VGA output as far as X is concerned
Option "Ignore" "True"
EndSection
If you don t tell X to ignore the VGA output, you ll end up with a mirror setup and your desktop will use the smallest size so as to fit on both monitors. It isn t pretty, it s plain silly and we want those 20 used fully, dammit!
See the
full xorg.conf.
Touch screen
The touch screen is an infrared multipoint touch screen from Quanta. No kernel driver is needed, only an input driver for X is required.
Start by adding an udev rule like this one:
SUBSYSTEM=="usb", ATTRS idVendor =="0408", ATTRS idProduct =="3000", SYMLINK+="usb/quanta_touch"
The touch screen will now appear as /dev/usb/quanta_touch, which is more handy and stable than /dev/usb/hiddevN.
Grab xf86-input-hidtouch from
HidTouch Suite on SF.net, and apply this
patch. The aim of the patch is to ignore anything but the first reported pressure point. The touch screen is a multipoint touch screen and as such can report 2 or 3 (not sure) pressure points at the same time. The driver can t handle that yet. The patch also fixes a bad comment and an API difference with newer X versions.
Build and install the driver, then edit xorg.conf:
Section "InputDevice"
Identifier "Optical Touch Screen"
Driver "hidtouch"
Option "SendCoreEvents" "true"
Option "ReportingMode" "Raw"
Option "Device" "/dev/usb/quanta_touch"
Option "PacketCount" "13"
Option "OpcodePressure" "852034"
Option "OpcodeX" "65584"
Option "OpcodeY" "65585"
Option "CalibrationModel" "1"
Option "CornerTopLeftX" "0"
Option "CornerTopLeftY" "0"
Option "CornerTopRightX" "1600"
Option "CornerTopRightY" "0"
Option "CornerBottomLeftX" "0"
Option "CornerBottomLeftY" "900"
Option "CornerBottomRightX" "1600"
Option "CornerBottomRightY" "900"
Option "CornerScreenWidth" "1600"
Option "CornerScreenHeight" "900"
EndSection
There you are. Working touch screen!
Credit: the above touch screen setup instructions, including the patch (which I reworked slightly ) were taken from
this post on the Ubuntu-fr.org forum. The instructions cover the Packard Bell Viseo 200T touch screen, which is identical to what s used on the OneTwo. If you re looking for a 20 touch screen, go for it; at 200 Euros it s a good deal.
Sound
The Realtek ALC268 codec as used in the OneTwo isn t properly supported yet, however using model=acer-aspire works for the integrated speakers and the headphone jack. Line out and the integrated microphone do not work.
Webcam
The webcam is a UVC webcam and the image quality is stunning. I m seriously considering stealing that webcam to replace the iSight in my MacBook Pro. It works out of the box without any firmware. Quite a good surprise :)
Flash card reader
The integrated flash card reader also works out of the box, for the card formats supported by Linux.